package tp1POO.Persistencia;

import tp1POO.Modelo.Cliente;
import tp1POO.Modelo.Funcionario;
import tp1POO.Modelo.Locacao;
import tp1POO.Modelo.Motorista;
import tp1POO.Modelo.ObjetoPOO;
import tp1POO.Modelo.Pessoa;
import tp1POO.Modelo.Tipo;
import tp1POO.Modelo.Veiculo;

/**
 * Fabrica DAO para arquivos texto
 */
public class FactoryDAOTexto implements AbstractFactoryDAO {
	/**
	 * Instacia o DAO correspondente a classe do Objeto
	 * @param parObj Objeto a ser persistido
	 * @return Um objeto de acesso a dados (DAO)
	 */
	@Override
	public DAO criarDAO(ObjetoPOO parObj) {
		DAOTexto daoTxt = null;

		if (parObj instanceof Tipo) {
			daoTxt = new TipoDAOTexto();
		}
		else if (parObj instanceof Veiculo) {
			daoTxt = new VeiculoDAOTexto();
		}
		else if (parObj instanceof Locacao) {
			daoTxt = new LocacaoDAOTexto();
		}
		else if (parObj instanceof Cliente) {
			daoTxt = new ClienteDAOTexto();
		}
		else if (parObj instanceof Motorista) {
			daoTxt = new MotoristaDAOTexto();
		}
		else if (parObj instanceof Funcionario) {
			daoTxt = new FuncionarioDAOTexto();
		}
		else if (parObj instanceof Pessoa) {
			daoTxt = new PessoaDAOTexto();
		}
		return daoTxt;
	}

}
